package com.zpark.repository;

import com.zpark.pojo.Comment;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import javax.transaction.Transactional;
import java.util.List;

/**
 * 在这个类中使用JPA的技术完成数据库的增删改查
 * JpaRepository<T, ID>解释说明
 * T:表示操作的实体类是谁（在实体类上配置了和表的映射关系）
 * ID:表示操作的实体类中对应的那个主键的数据类型，和实体类型的@ID属性修饰的数据类型一致
 */
public interface CommentRepository extends JpaRepository<Comment,Integer> {
    //@Query()表示增、删、改、查操作的注解
    @Query(value = "select * from t_comment where article_id = ?1",nativeQuery = true)
    //Pageable:表示一个分页的对象，指定起始的数据和最终的数据
    List<Comment>getCommentPage(Integer article_id, Pageable pageable);
    @Transactional  //开启事务
    @Modifying  //修改和删除操作时必须添加次注解
    @Query("update t_comment c set c.author=?1 where c.id=?2")
    int updateComment(String author,Integer id);

    @Transactional
    @Modifying  //修改和删除操作时必须添加次注解
    //IDEA兼容性差造成的
    @Query("delete  t_comment  c where c.id = ?1")
    int deleteComment(Integer id);


}
